// pages/search/search.js
import user_thing from '../../module/use_thing'
const app = getApp()
Page({
  /**
   * 页面的初始数据
   */
  data: {
    search_show: false,
    search_false: false,
    none_show: false,
    history_show: false,
    result_show: false,
    value: '',
    focus: false,
    historyArr: [],
    new_sort: true, //最新排序  true为使用最新排序 false为使用价格排序
    price_sort: false, //价格排序 true为低到高 false为高到低
    page: 1,
    getMore: true,
    dataArr: []
  },
  //******************************************自定义事件******************************* */
  /**
   * 跳转详情页
   */
  goDetails(e) {
    wx.navigateTo({
      url: '../details/details?id=' + this.data.dataArr[e.currentTarget.dataset.num].id
    })
  },
  /**
   * 最新发布-click 事件
   */
  new_sort() {
    this.setData(
      {
        new_sort: true,
        price_sort: false,
        page: 1,
        dataArr: []
      },
      () => {
        this.getThing_class()
      }
    )
  },
  /**
   * 价格-click 事件
   */
  price_sort() {
    this.setData(
      {
        new_sort: false,
        price_sort: !this.data.price_sort,
        page: 1,
        dataArr: []
      },
      () => {
        this.getThing_class()
      }
    )
  },
  /**
   * 历史记录btn-click 事件
   */
  historyBtn(e) {
    // console.log(e.target.dataset.value);
    this.setData(
      {
        focus: false
      },
      () => {
        this.setData(
          {
            value: e.target.dataset.value
          },
          () => {
            this.search(e.target.dataset.value)
          }
        )
      }
    )
  },
  /**
   * 键盘-确定 or 搜索btn-click 时触发
   */
  inputOK() {
    let that = this
    this.search(this.data.value)
    //写入缓存--历史记录
    wx.getStorage({
      key: 'history',
      success(res) {
        let _data = [that.data.value].concat(res.data)
        //去重
        var x = new Set(_data)
        _data = [...x]
        //长度限制
        _data.length > 10 ? (_data = _data.slice(0, 10)) : ''
        // console.log(_data);
        wx.setStorage({
          key: 'history',
          data: _data,
          success() {
            that.setData({
              historyArr: _data
            })
          }
        })
      },
      fail(err) {
        //失败是为未定义该缓存，就先创建一个
        wx.setStorage({
          key: 'history',
          data: [that.data.value],
          success() {
            that.setData({
              historyArr: _data
            })
          }
        })
      }
    })
  },
  /**
   * 修改data.value 的值
   * @param {obj} e 当前对象
   */
  input_change(e) {
    // console.log(e.detail.value);
    this.setData({
      value: e.detail.value
    })
  },
  /**
   * 清空输入值
   */
  re_enter() {
    this.setData({
      value: ''
    })
  },
  /**
   * 退出 事件
   */
  quit() {
    wx.navigateBack({
      delta: 1
    })
  },
  /**
   * 进入搜索
   * @param {string} value 输入值
   */
  search(value) {
    let that = this
    this.getThing_class()
  },
  /**
   * 重置搜索页
   */
  brealSearch() {
    this.setData({
      search_false: false,
      result_show: false,
      history_show: true,
      none_show: false,
      value: '',
      page: 1,
      dataArr: []
    })
  },
  /**
   * 清空历史记录
   */
  historyAsgcan() {
    let that = this
    wx.showModal({
      title: '是否清空历史记录',
      content: '清空后无法恢复',
      success(res) {
        if (res.confirm) {
          wx.setStorage({
            key: 'history',
            data: [],
            success() {
              that.setData({
                historyArr: [],
                history_show: false
              })
            }
          })
        } else if (res.cancel) {
          //  console.log('用户点击取消')
        }
      }
    })
  },
  /**
   * 获取物品
   */
  getThing_class() {
    let that = this,
      obj = {
        login_token: app.globalData.login_token,
        category: this.data.category,
        order_by: that.data.new_sort ? 'by_post_time' : that.data.price_sort ? 'by_price_asc' : 'by_price_desc',
        page: this.data.page
      }
    if (this.data.value != '') {
      obj.key_word = this.data.value
    }

    user_thing
      .getThing(obj)
      .then(res => {
        // console.log(res.data.next_page, res.data.list)

        let arr = res.data.list
        that.setData(
          {
            dataArr: that.data.dataArr.concat(arr),
            getMore: res.data.next_page || res.data.list ? true : false
            // first: false
          },
          () => {
            that.setData({
              history_show: false,
              search_false: true,
              // none_show: true,
              result_show: true
            })
          }
        )
      })
      .catch(err => {
        if (err == 404 && that.data.page == 1) {
          that.setData({
            history_show: false,
            search_false: true,
            none_show: true,
            result_show: false
          })
        }
      })
  },
  //******************************************周期****************************************** */
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    // console.log(options);
    let that = this
    //改变页面标题
    wx.setNavigationBarTitle({
      title: options.title
    })
    if (options.title != '搜索') {
      //分类进入
      this.setData(
        {
          search_show: false,
          category: options.category,
          focus: false
        },
        () => {
          that.getThing_class(options.category)
        }
      )
    } else {
      //搜索进入
      let that = this
      this.setData({
        search_show: true,
        category: 'all',
        focus: true
      })
      //获取 历史记录
      wx.getStorage({
        key: 'history',
        success(res) {
          // console.log(res.data)
          if (res.data.length) {
            that.setData({
              history_show: true,
              historyArr: res.data
            })
          }
        }
      })
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {},

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {},

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {},

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {},

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {},

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {
    // console.log('触底')
    if (this.data.getMore) {
      this.setData(
        {
          page: this.data.page + 1,
          getMore: false
        },
        () => {
          this.data.value != '搜索' ? this.getThing_class(this.data.category) : this.getThing_class(this.data.category, this.data.value)
        }
      )
    }
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {}
})
